package com.hk.core.data.jpa.domain;

import jakarta.persistence.Column;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.TenantId;

/**
 * 多租户模式
 * <pre>
 *     多租户的三种模式:
 *          - 独立数据库
 *          - 共享数据库，独立Schema
 *          - 共享数据库，共享Schema，共享数据表
 * </pre>
 *
 * @author Kevin
 * @date 2023-10-12 23:03
 */
@Setter
@Getter
@MappedSuperclass
public class AbstractTenantSnowflakeAuditable extends AbstractSnowflakeAuditable {

    @TenantId
    @Column(name = "tenant_id", updatable = false)
    private String tenantId;

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }
}
